package com.maimang.platform.config;

import com.google.code.kaptcha.text.impl.DefaultTextCreator;

import java.util.Random;

/**
 * @author Rocky
 * @version 1.0.0
 * @classname KaptchaTextCreator
 * @description 验证码文本生成器
 * @date 2019-04-24 18:41
 * @email jintaozhao@qq.com
 */
public class KaptchaTextCreator extends DefaultTextCreator {
	private static final String[] CNUMBERS = "0,1,2,3,4,5,6,7,8,9,10".split(",");

	@Override
	public String getText() {
		Integer result = 0;
		Random random = new Random();
		int x = random.nextInt(10);
		int y = random.nextInt(10);
		StringBuilder captcheText = new StringBuilder();
		int randomoperands = (int) Math.round(Math.random() * 2);
		if (randomoperands == 0) {
			result = x * y;
			captcheText.append(CNUMBERS[x]);
			captcheText.append("*");
			captcheText.append(CNUMBERS[y]);
		} else if (randomoperands == 1) {
			if (!(x == 0) && y % x == 0) {
				result = y / x;
				captcheText.append(CNUMBERS[y]);
				captcheText.append("/");
				captcheText.append(CNUMBERS[x]);
			} else {
				result = x + y;
				captcheText.append(CNUMBERS[x]);
				captcheText.append("+");
				captcheText.append(CNUMBERS[y]);
			}
		} else if (randomoperands == 2) {
			if (x >= y) {
				result = x - y;
				captcheText.append(CNUMBERS[x]);
				captcheText.append("-");
				captcheText.append(CNUMBERS[y]);
			} else {
				result = y - x;
				captcheText.append(CNUMBERS[y]);
				captcheText.append("-");
				captcheText.append(CNUMBERS[x]);
			}
		} else {
			result = x + y;
			captcheText.append(CNUMBERS[x]);
			captcheText.append("+");
			captcheText.append(CNUMBERS[y]);
		}
		captcheText.append("=?@" + result);
		return captcheText.toString();
	}
}
